// created by jay 1.1.0 (c) 2002-2006 ats@cs.rit.edu
// skeleton Java/pj2 1.1.0/2.0.0 (c) 2002-2008 ats@cs.rit.edu

					// line 4 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
public class Kitsch {
					// line 7 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  /** maps symbol value to printable name.
      @see #yyExpecting
    */
  protected static final String[] yyNames = {
    "[eof]", null, null, null, null, null, null, null, null, null, null,
    null, null, null, null, null, null, null, null, null, null, null,
    null, null, null, null, null, null, null, null, null, null, null,
    null, null, null, null, "\'%\'", "\'&\'", null, "\'(\'", "\')\'",
    "\'*\'", "\'+\'", "\',\'", "\'-\'", null, "\'/\'", null, null, null,
    null, null, null, null, null, null, null, "\':\'", "\';\'", "\'<\'",
    "\'=\'", "\'>\'", null, null, null, null, null, null, null, null,
    null, null, null, null, null, null, null, null, null, null, null,
    null, null, null, null, null, null, null, null, null, "\'[\'", null,
    "\']\'", "\'^\'", null, null, null, null, null, null, null, null,
    null, null, null, null, null, null, null, null, null, null, null,
    null, null, null, null, null, null, null, null, null, null, "\'|\'",
    null, "\'~\'", null, null, null, null, null, null, null, null, null,
    null, null, null, null, null, null, null, null, null, null, null,
    null, null, null, null, null, null, null, null, null, null, null,
    null, null, null, null, null, null, null, null, null, null, null,
    null, null, null, null, null, null, null, null, null, null, null,
    null, null, null, null, null, null, null, null, null, null, null,
    null, null, null, null, null, null, null, null, null, null, null,
    null, null, null, null, null, null, null, null, null, null, null,
    null, null, null, null, null, null, null, null, null, null, null,
    null, null, null, null, null, null, null, null, null, null, null,
    null, null, null, null, null, null, null, null, null, null, null,
    null, null, null, null, null, null, null, null, null, null, "error",
    "\'print\'", "\'read\'", "\'def\'", "\'return\'", "\'fed\'", "\'if\'",
    "\'fi\'", "\'elif\'", "\'else\'", "\'while\'", "\'elihw\'", "\'and\'",
    "\'or\'", "\'not\'", "\'<=\'", "\'>=\'", "\'!=\'", "\'==\'", "\'**\'",
    "number", "bool", "global", "type", "ident", "str", "eol"
  };
					// line 41 "-"
  // %token constants
  public static final int _268 = 268;
  public static final int _267 = 267;
  public static final int _259 = 259;
  public static final int _275 = 275;
  public static final int _274 = 274;
  public static final int _264 = 264;
  public static final int _269 = 269;
  public static final int _261 = 261;
  public static final int _271 = 271;
  public static final int _258 = 258;
  public static final int _263 = 263;
  public static final int _273 = 273;
  public static final int _266 = 266;
  public static final int _270 = 270;
  public static final int _272 = 272;
  public static final int _265 = 265;
  public static final int _257 = 257;
  public static final int _262 = 262;
  public static final int _260 = 260;
  public static final int number = 276;
  public static final int bool = 277;
  public static final int global = 278;
  public static final int type = 279;
  public static final int ident = 280;
  public static final int str = 281;
  public static final int eol = 282;
  public static final int yyErrorCode = 256;

  /** number of final state.
    */
  protected static final int yyFinal = 1;

  /** parser tables.
      Order is mandated by <i>jay</i>.
    */
  protected static final short[] yyLhs = {
//yyLhs 141
    -1,     1,     1,     0,     2,     2,     3,     4,     4,     4,
     4,     4,     4,     4,     4,     5,     5,     6,     6,     7,
     8,     8,     9,    10,    10,    11,    12,    12,    13,    14,
    14,    15,    16,    17,    18,    18,    19,    20,    20,    21,
    21,    22,    23,    23,    24,    24,    25,    26,    26,    27,
    28,    28,    29,    30,    31,    31,    32,    33,    34,    35,
    36,    37,    38,    39,    40,    41,    42,    43,    44,    44,
    44,    44,    44,    44,    44,    44,    44,    44,    44,    44,
    44,    44,    44,    44,    44,    44,    44,    44,    44,    44,
    44,    44,    44,    44,    44,    44,    44,    44,    45,    46,
    47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
    56,    57,    58,    58,    59,    60,    61,    61,    62,    63,
    63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
    73,    74,    74,    75,    75,    76,    77,    77,    78,    78,
    79,
    }, yyLen = {
//yyLen 141
     2,     0,     2,     1,     1,     1,     1,     1,     1,     1,
     1,     1,     1,     1,     1,     0,     2,     0,     1,     4,
     1,     2,     4,     1,     2,     4,     1,     2,     3,     1,
     2,     5,     2,     3,     0,     1,     4,     0,     2,     0,
     1,     7,     1,     1,     1,     1,     2,     0,     2,     2,
     0,     1,     3,     3,     0,     1,     4,     2,     2,     3,
     3,     3,     3,     3,     3,     3,     3,     2,     1,     1,
     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1,     1,     1,     1,     1,     1,     1,     1,     3,     3,
     3,     3,     3,     3,     3,     3,     3,     2,     2,     0,
     2,     2,     0,     1,     4,     2,     0,     2,     2,     0,
     1,     3,     3,     4,     2,     2,     1,     1,     1,     1,
     1,     1,     1,     1,     1,     4,     0,     1,     0,     1,
     3,
    }, yyDefRed = {
//yyDefRed 201
     1,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   131,   132,     6,     2,     4,     7,    15,     8,    13,     9,
     5,    10,    11,    12,     0,    14,     0,   130,    58,     0,
   128,   126,   127,     0,     0,     0,     0,     0,    85,    86,
    87,    88,    89,    90,    91,    92,    93,     0,    68,    69,
    70,    71,    72,    73,    74,    75,    76,    77,    96,    97,
    78,    95,    79,    80,    94,    83,    81,    82,    84,     0,
     0,    32,     0,     0,     0,    35,     0,     0,     0,     0,
     0,     0,     0,     0,   120,     0,   129,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   113,     0,     0,     0,     0,    16,    18,     0,     0,    47,
    51,     0,    43,     0,    37,     0,   121,   122,     0,     0,
     0,     0,     0,     0,     0,     0,    29,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   133,    20,     0,     0,   114,     0,     0,    19,    33,
     0,     0,    52,     0,     0,     0,   117,   123,    31,    30,
   135,     0,    21,     0,   110,     0,    26,     0,     0,    48,
     0,    38,     0,    40,     0,     0,     0,   140,     0,    23,
     0,    27,    46,    45,     0,    41,     0,    24,     0,    56,
    55,
    }, yyDgoto = {
//yyDgoto 80
     1,     2,    12,    13,    14,    73,   114,    15,   153,    16,
   190,   115,   177,   116,   137,    17,    18,    75,    76,    19,
   164,   182,    20,   119,   192,   179,   161,   120,   121,    78,
   122,   199,   183,    21,    22,    38,    39,    40,    41,    42,
    43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
    53,    54,    55,    56,    57,   174,   154,   110,   111,    58,
   166,   125,    84,    85,    59,    60,    61,    62,    63,    64,
    65,    66,    88,    67,    25,   149,    68,   150,   187,   151,
    }, yySindex = {
//yySindex 201
     0,     0,   -59,  -273,  -264,    65,    65,    65,  -259,   -17,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   -65,     0,   -10,     0,     0,    65,
     0,     0,     0,    65,    65,    65,    65,   -35,     0,     0,
     0,     0,     0,     0,     0,     0,     0,  1388,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,  1527,
  1423,     0,    65,  -215,    65,     0,   -21,  -264,   -11,  1585,
   -18,   -18,   -39,  1527,     0,   -42,     0,  1489,    13,    65,
    65,    65,    65,    65,    65,    65,   460,    65,    65,    65,
    65,    65,    65,    65,    65,    65,    65,    65,   460,  1527,
     0,    16,    65,     9,  -188,     0,     0,  1501,    65,     0,
     0,    36,     0,    17,     0,    35,     0,     0,    65,  1585,
   -88,  1599,  1585,  1599,  1599,  1599,     0,   338,  1599,  1599,
   -18,   -18,   -36,   -36,   -36,   -88,   -88,   -88,  1527,   -12,
    22,     0,     0,   460,    38,     0,  1515,   460,     0,     0,
  1527,    39,     0,    65,   -46,    65,     0,     0,     0,     0,
     0,    65,     0,    65,     0,   460,     0,   460,  -264,     0,
  1527,     0,  -177,     0,  -167,  1527,  1527,     0,  1527,     0,
   460,     0,     0,     0,    17,     0,    65,     0,  1247,     0,
     0,
    }, yyRindex = {
//yyRindex 201
     0,     0,    96,     0,     0,     0,     0,     0,     0,     1,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,    37,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     4,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   238,
     0,     0,    58,  -163,     0,     0,     0,    60,     0,  1115,
   548,   661,    27,   -40,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,    44,     0,   -32,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   -30,     0,    10,     0,     0,     0,  1141,
    90,   792,  1229,   818,   845,   959,     0,     0,   985,  1088,
   689,   715,   278,   419,   522,   116,   365,   391,   -52,     0,
     0,     0,     0,  -231,    63,     0,     0,     0,     0,     0,
   635,    66,     0,     0,  -152,     0,     0,     0,     0,     0,
     0,    18,     0,     0,     0,     0,     0,  -151,     0,     0,
   -26,     0,     0,     0,     0,   -27,    20,     0,   -19,     0,
  -228,     0,     0,     0,   -13,     0,     0,     0,  -147,     0,
     0,
    }, yyGindex = {
//yyGindex 80
     0,     0,     0,     0,   334,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   -63,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,  1719,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,  1279,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   -47,  1775,   -80,     0,     0,     0,     0,     0,
    }, yyTable = {
//yyTable 1966
    11,   130,   104,   107,   116,    37,   137,    26,    33,   109,
    34,    42,   109,    11,    42,    53,    27,   115,    53,   103,
   104,    71,   108,    72,   101,   108,    74,   107,    44,   102,
    77,    44,    22,    22,    22,    25,    25,    25,   130,   130,
   118,   134,   130,   130,   130,   130,   130,   124,   130,   112,
   113,   126,   107,   116,   128,   107,    36,   155,   106,   130,
   130,   130,   130,   130,   107,   107,   115,   157,   107,   107,
   107,   107,   107,   107,   107,   158,   106,   162,   163,   165,
   171,   170,   173,   178,   195,   107,   107,   107,   105,   107,
   103,    35,   130,   196,   130,   130,     3,   119,    34,   112,
    17,    50,   136,   118,   111,    37,   105,    49,    33,    39,
    34,   138,    28,   139,    54,   193,   104,   184,   200,     0,
   107,   107,     0,     0,     0,   130,     0,   103,   103,     0,
     0,   103,   103,   103,   103,   103,     0,   103,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,   103,   103,
   103,   107,   103,   104,   104,     0,    36,   104,   104,   104,
   104,   104,     0,   104,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   104,   104,   104,     0,   104,     0,
     0,     0,     0,   103,   103,     0,     0,    90,     0,     0,
     0,    35,     0,     0,     0,     0,     0,     0,     6,     4,
     3,     0,     0,     7,     0,     0,     0,     5,     0,   104,
   104,     6,     4,     0,   103,     0,     7,     0,     0,     8,
     5,     9,     0,    10,     0,     0,     0,     0,     0,     0,
     0,     0,     8,    86,     9,    29,    10,     0,    57,    90,
   104,    30,    31,     0,    86,     9,    32,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,    90,   130,   130,
   130,     0,   130,   130,   130,   130,   130,   130,   130,   130,
   130,     0,   130,   130,   130,   130,   130,     0,   100,   130,
   130,   130,     0,   130,   107,   107,   107,     0,   107,   107,
   107,   107,   107,   107,   107,   107,   107,    57,   107,   107,
   107,   107,   107,     0,     0,   107,   107,   107,     0,   107,
     0,     0,     0,     0,     0,   100,     0,     0,     0,   100,
   100,   100,   100,   100,     0,   100,     0,     0,     0,     0,
     0,     0,     0,     0,     0,    29,   100,   100,   100,     0,
   100,    30,    31,     0,     0,     9,    32,   103,   103,   103,
     0,   103,   103,   103,   103,   103,   103,   103,   103,   103,
     0,   103,   103,   103,   103,   105,     0,     0,   103,   103,
   103,   100,   103,   104,   104,   104,     0,   104,   104,   104,
   104,   104,   104,   104,   104,   104,     0,   104,   104,   104,
   104,   106,     0,     0,   104,   104,   104,    11,   104,     0,
     0,     0,   105,   105,     0,     0,   105,   105,   105,   105,
   105,     0,   105,     0,     0,     0,     0,     0,     0,   101,
     0,     0,     0,   105,   105,   105,     0,   105,   106,   106,
   136,     0,   106,   106,   106,   106,   106,     0,   106,     0,
     0,     0,   152,     0,     0,     0,     0,     0,     0,   106,
   106,   106,     0,   106,     0,     0,   101,     0,   105,   105,
   101,   101,   101,   101,   101,     0,   101,     0,     0,     0,
     0,   169,     0,     0,     0,     0,     0,   101,   101,   101,
     0,   101,     0,     0,   106,   106,     0,   172,     0,   105,
     0,   176,     0,     0,     0,    57,    57,    57,   181,    57,
    57,    57,    57,    57,    57,    57,     0,     0,     0,   189,
     0,   191,   101,     0,     0,   106,    57,    57,    57,    11,
    57,     0,   102,     0,   197,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   100,   100,   100,     0,   100,
   100,   100,   100,   100,   100,   100,   100,   100,   125,   100,
   100,   100,   100,     0,     0,     0,   100,   100,   100,   102,
   100,     0,     0,   102,   102,   102,   102,   102,     0,   102,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   102,   102,   102,     0,   102,     0,     0,     0,     0,   125,
     0,   125,   125,   125,     0,     6,     4,     0,     0,     0,
     7,     0,     0,     0,     5,   168,   125,   125,   125,     0,
   125,     0,     0,     0,     0,   102,     8,     0,     9,     0,
    10,     0,   105,   105,   105,     0,   105,   105,   105,   105,
   105,   105,   105,   105,   105,    36,   105,   105,   105,   105,
     0,   125,     0,   105,   105,   105,     0,   105,   106,   106,
   106,     0,   106,   106,   106,   106,   106,   106,   106,   106,
   106,   124,   106,   106,   106,   106,     0,     0,     0,   106,
   106,   106,     0,   106,     0,     0,   101,   101,   101,     0,
   101,   101,   101,   101,   101,   101,   101,   101,   101,    98,
   101,   101,   101,   101,    36,     0,     0,   101,   101,   101,
     0,   101,   124,     0,   124,   124,   124,     0,     0,     0,
     0,     0,     0,     0,     0,    99,     0,     6,     4,   124,
   124,   124,     7,   124,     0,     0,     5,     0,     0,     0,
    98,     0,    98,    98,    98,     0,     0,     0,     8,     0,
     9,     0,    10,     0,     0,     0,     0,    98,    98,    98,
     0,    98,     0,     0,   124,     0,    99,     0,    99,    99,
    99,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,    99,    99,    99,     0,    99,     0,   102,
   102,   102,    98,   102,   102,   102,   102,   102,   102,   102,
   102,   102,    63,   102,   102,   102,   102,     0,     0,     0,
   102,   102,   102,     0,   102,   125,   125,   125,    99,   125,
   125,   125,   125,   125,   125,   125,   125,   125,    60,   125,
   125,   125,   125,     0,     0,     0,   125,   125,   125,     0,
   125,     0,     0,    63,     0,     0,    63,     0,     0,     0,
     0,     0,     0,     0,     0,    64,     0,     0,     0,     0,
    63,    63,    63,     0,    63,     0,     0,     0,     0,    60,
     0,     0,    60,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    60,    60,    60,     0,
    60,     0,     0,     0,     0,    63,    64,     0,     0,    64,
     0,     0,    36,    36,    36,     0,    36,    36,    36,    36,
    36,    36,    36,    64,    64,    64,     0,    64,     0,     0,
     0,    60,     0,    36,    36,    36,     0,    36,   124,   124,
   124,     0,   124,   124,   124,   124,   124,   124,   124,   124,
   124,     0,   124,   124,   124,   124,     0,     0,    64,   124,
   124,   124,     0,   124,     0,     0,    98,    98,    98,     0,
    98,    98,    98,    98,    98,    98,    98,    98,    98,    62,
    98,    98,    98,    98,     0,     0,     0,    98,    98,    98,
     0,    98,    99,    99,    99,     0,    99,    99,    99,    99,
    99,    99,    99,    99,    99,    59,    99,    99,    99,    99,
     0,     0,     0,    99,    99,    99,     0,    99,     0,     0,
    62,     0,     0,    62,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,    62,    62,    62,
     0,    62,     0,     0,     0,     0,    59,     0,     0,    59,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,    59,    59,    59,     0,    59,     0,    63,
    63,    63,    62,    63,    63,    63,    63,    63,    63,    63,
    63,    63,     0,    63,    63,    63,    63,     0,     0,     0,
    63,    63,    63,     0,    63,    60,    60,    60,    59,    60,
    60,    60,    60,    60,    60,    60,    60,    60,    61,    60,
    60,    60,    60,     0,     0,     0,    60,    60,    60,     0,
    60,     0,    64,    64,    64,     0,    64,    64,    64,    64,
    64,    64,    64,    64,    64,    67,    64,    64,    64,    64,
     0,     0,     0,    64,    64,    64,     0,    64,     0,    61,
     0,     0,    61,     0,     0,     0,     0,     0,     0,     0,
     0,    65,     0,     0,     0,     0,    61,    61,    61,     0,
    61,     0,     0,     0,     0,     0,    67,     0,     0,    67,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,    67,    67,     0,     0,     0,     0,     0,
     0,    61,    65,     0,     0,    65,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,    65,
    65,     0,     0,     0,     0,     0,     0,     0,    67,     0,
     0,     0,     0,     0,     0,     0,    62,    62,    62,     0,
    62,    62,    62,    62,    62,    62,    62,    62,    62,    66,
    62,    62,    62,    62,    65,     0,     0,    62,    62,    62,
     0,    62,    59,    59,    59,     0,    59,    59,    59,    59,
    59,    59,    59,    59,    59,     0,    59,    59,    59,    59,
     0,     0,     0,    59,    59,    59,     0,    59,     0,     0,
    66,     0,     0,    66,     0,     0,     0,     0,     0,     0,
     0,    23,     0,     0,   103,   104,     0,    66,    66,   101,
    99,     0,   100,     0,   102,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    11,    97,     0,    98,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,    66,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,   107,     0,
     0,   106,     0,     0,     0,    61,    61,    61,     0,    61,
    61,    61,    61,    61,    61,    61,    61,    61,     0,    61,
    61,    61,    61,     0,     0,     0,    61,    61,    61,     0,
    61,   105,    67,    67,    67,    23,    67,    67,    67,    67,
    67,    67,    67,    67,    67,     0,     0,    23,     0,     0,
     0,     0,     0,    67,    67,    67,     0,    67,    65,    65,
    65,     0,    65,    65,    65,    65,    65,    65,    65,    65,
    65,     0,     0,     0,     0,     0,    23,     0,     0,    65,
    65,    65,     0,    65,     0,   103,   104,     0,     0,     0,
   101,    99,    23,   100,     0,   102,    23,     0,     0,     0,
     0,     0,     0,    23,     0,     0,    96,     0,    97,     0,
    98,     0,     0,     0,    23,     0,    23,     0,     0,     0,
   103,   104,     0,     0,     0,   101,    99,     0,   100,    23,
   102,     0,     0,     0,     0,     0,     0,     0,     0,   107,
     0,   108,   106,    97,     0,    98,    66,    66,    66,     0,
    66,    66,    66,    66,    66,    66,    66,    66,    66,     0,
     0,     0,     0,     0,     0,     0,     0,    66,    66,    66,
     0,    66,   105,     0,   107,    89,    92,   106,    93,    95,
    94,    91,    90,     0,     0,     0,   103,   104,     0,    10,
   127,   101,    99,     0,   100,     0,   102,     0,   103,   104,
     0,     0,     0,   101,    99,     0,   100,   105,   102,    97,
     0,    98,   103,   104,     0,     0,     0,   101,    99,     0,
   100,    97,   102,    98,   103,   104,     0,     0,     0,   101,
    99,     0,   100,   175,   102,    97,     0,    98,     0,     0,
   107,     0,     0,   106,     0,     0,     0,    97,     0,    98,
     0,     0,   107,     0,   159,   106,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   107,     0,     0,   106,
     0,     0,     0,   105,     0,     0,     0,     0,   107,     0,
     0,   106,   103,   104,     0,   105,     0,   101,    99,     0,
   100,     0,   102,     0,     0,     0,   103,   104,     0,   105,
     0,   101,    99,     0,   100,    97,   102,    98,     0,     0,
     0,   105,     0,     0,     0,     0,    89,    92,     0,    93,
    95,    94,    91,    90,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   107,     0,     0,   106,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   107,    89,    92,   106,    93,    95,    94,    91,    90,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   105,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   105,     0,    69,    70,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,    79,     0,
     0,     0,    80,    81,    82,    83,    87,    89,    92,     0,
    93,    95,    94,    91,    90,     0,     0,     0,     0,    89,
    92,     0,    93,    95,    94,    91,    90,    24,     0,    28,
     0,     0,     0,    89,    92,     0,    93,    95,    94,    91,
    90,   109,     0,   117,     0,    89,    92,     0,    93,    95,
    94,    91,    90,     0,     0,     0,     0,     0,   129,   130,
   131,   132,   133,   134,   135,     0,   138,   139,   140,   141,
   142,   143,   144,   145,   146,   147,   148,     0,     0,     0,
     0,   156,     0,     0,     0,     0,     0,   160,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   167,     0,     0,
     0,     0,   123,     0,     0,     0,    93,    95,    94,    91,
    90,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,    24,     0,     0,    90,     0,     0,     0,     0,     0,
     0,     0,   180,    24,   185,     0,     0,     0,     0,     0,
   186,     0,   188,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,    24,     0,     0,   198,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,    24,     0,
     0,     0,    24,     0,     0,     0,     0,     0,     0,    24,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    24,     0,    24,   194,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,    24,
    }, yyCheck = {
//yyCheck 1966
    59,     0,    38,    91,    44,    40,    58,   280,    43,    41,
    45,    41,    44,    59,    44,    41,   280,    44,    44,    37,
    38,   280,    41,    40,    42,    44,    91,     0,    41,    47,
    40,    44,   263,   264,   265,   263,   264,   265,    37,    38,
    61,    93,    41,    42,    43,    44,    45,    58,    47,   264,
   265,    93,    91,    93,    41,    91,    91,    41,    94,    58,
    59,    60,    61,    62,    37,    38,    93,    58,    41,    42,
    43,    44,    45,    91,    47,   263,    94,    41,    61,    44,
    58,    93,    44,    44,   261,    58,    59,    60,   124,    62,
     0,   126,    91,   260,    93,    94,     0,    93,    61,    41,
   263,    41,    58,    93,    41,    40,   124,    41,    43,   261,
    45,    93,   263,    93,   261,   178,     0,   164,   198,    -1,
    93,    94,    -1,    -1,    -1,   124,    -1,    37,    38,    -1,
    -1,    41,    42,    43,    44,    45,    -1,    47,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,    59,
    60,   124,    62,    37,    38,    -1,    91,    41,    42,    43,
    44,    45,    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    58,    59,    60,    -1,    62,    -1,
    -1,    -1,    -1,    93,    94,    -1,    -1,   275,    -1,    -1,
    -1,   126,    -1,    -1,    -1,    -1,    -1,    -1,   257,   258,
   259,    -1,    -1,   262,    -1,    -1,    -1,   266,    -1,    93,
    94,   257,   258,    -1,   124,    -1,   262,    -1,    -1,   278,
   266,   280,    -1,   282,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,   278,   279,   280,   270,   282,    -1,     0,   275,
   124,   276,   277,    -1,   279,   280,   281,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,   275,   257,   258,
   259,    -1,   261,   262,   263,   264,   265,   266,   267,   268,
   269,    -1,   271,   272,   273,   274,   275,    -1,     0,   278,
   279,   280,    -1,   282,   257,   258,   259,    -1,   261,   262,
   263,   264,   265,   266,   267,   268,   269,    59,   271,   272,
   273,   274,   275,    -1,    -1,   278,   279,   280,    -1,   282,
    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    41,
    42,    43,    44,    45,    -1,    47,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,   270,    58,    59,    60,    -1,
    62,   276,   277,    -1,    -1,   280,   281,   257,   258,   259,
    -1,   261,   262,   263,   264,   265,   266,   267,   268,   269,
    -1,   271,   272,   273,   274,     0,    -1,    -1,   278,   279,
   280,    93,   282,   257,   258,   259,    -1,   261,   262,   263,
   264,   265,   266,   267,   268,   269,    -1,   271,   272,   273,
   274,     0,    -1,    -1,   278,   279,   280,    59,   282,    -1,
    -1,    -1,    37,    38,    -1,    -1,    41,    42,    43,    44,
    45,    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,     0,
    -1,    -1,    -1,    58,    59,    60,    -1,    62,    37,    38,
    96,    -1,    41,    42,    43,    44,    45,    -1,    47,    -1,
    -1,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,    58,
    59,    60,    -1,    62,    -1,    -1,    37,    -1,    93,    94,
    41,    42,    43,    44,    45,    -1,    47,    -1,    -1,    -1,
    -1,   137,    -1,    -1,    -1,    -1,    -1,    58,    59,    60,
    -1,    62,    -1,    -1,    93,    94,    -1,   153,    -1,   124,
    -1,   157,    -1,    -1,    -1,   257,   258,   259,   164,   261,
   262,   263,   264,   265,   266,   267,    -1,    -1,    -1,   175,
    -1,   177,    93,    -1,    -1,   124,   278,   279,   280,    59,
   282,    -1,     0,    -1,   190,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,   257,   258,   259,    -1,   261,
   262,   263,   264,   265,   266,   267,   268,   269,     0,   271,
   272,   273,   274,    -1,    -1,    -1,   278,   279,   280,    37,
   282,    -1,    -1,    41,    42,    43,    44,    45,    -1,    47,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    58,    59,    60,    -1,    62,    -1,    -1,    -1,    -1,    41,
    -1,    43,    44,    45,    -1,   257,   258,    -1,    -1,    -1,
   262,    -1,    -1,    -1,   266,   267,    58,    59,    60,    -1,
    62,    -1,    -1,    -1,    -1,    93,   278,    -1,   280,    -1,
   282,    -1,   257,   258,   259,    -1,   261,   262,   263,   264,
   265,   266,   267,   268,   269,     0,   271,   272,   273,   274,
    -1,    93,    -1,   278,   279,   280,    -1,   282,   257,   258,
   259,    -1,   261,   262,   263,   264,   265,   266,   267,   268,
   269,     0,   271,   272,   273,   274,    -1,    -1,    -1,   278,
   279,   280,    -1,   282,    -1,    -1,   257,   258,   259,    -1,
   261,   262,   263,   264,   265,   266,   267,   268,   269,     0,
   271,   272,   273,   274,    59,    -1,    -1,   278,   279,   280,
    -1,   282,    41,    -1,    43,    44,    45,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,     0,    -1,   257,   258,    58,
    59,    60,   262,    62,    -1,    -1,   266,    -1,    -1,    -1,
    41,    -1,    43,    44,    45,    -1,    -1,    -1,   278,    -1,
   280,    -1,   282,    -1,    -1,    -1,    -1,    58,    59,    60,
    -1,    62,    -1,    -1,    93,    -1,    41,    -1,    43,    44,
    45,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    58,    59,    60,    -1,    62,    -1,   257,
   258,   259,    93,   261,   262,   263,   264,   265,   266,   267,
   268,   269,     0,   271,   272,   273,   274,    -1,    -1,    -1,
   278,   279,   280,    -1,   282,   257,   258,   259,    93,   261,
   262,   263,   264,   265,   266,   267,   268,   269,     0,   271,
   272,   273,   274,    -1,    -1,    -1,   278,   279,   280,    -1,
   282,    -1,    -1,    41,    -1,    -1,    44,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,     0,    -1,    -1,    -1,    -1,
    58,    59,    60,    -1,    62,    -1,    -1,    -1,    -1,    41,
    -1,    -1,    44,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    58,    59,    60,    -1,
    62,    -1,    -1,    -1,    -1,    93,    41,    -1,    -1,    44,
    -1,    -1,   257,   258,   259,    -1,   261,   262,   263,   264,
   265,   266,   267,    58,    59,    60,    -1,    62,    -1,    -1,
    -1,    93,    -1,   278,   279,   280,    -1,   282,   257,   258,
   259,    -1,   261,   262,   263,   264,   265,   266,   267,   268,
   269,    -1,   271,   272,   273,   274,    -1,    -1,    93,   278,
   279,   280,    -1,   282,    -1,    -1,   257,   258,   259,    -1,
   261,   262,   263,   264,   265,   266,   267,   268,   269,     0,
   271,   272,   273,   274,    -1,    -1,    -1,   278,   279,   280,
    -1,   282,   257,   258,   259,    -1,   261,   262,   263,   264,
   265,   266,   267,   268,   269,     0,   271,   272,   273,   274,
    -1,    -1,    -1,   278,   279,   280,    -1,   282,    -1,    -1,
    41,    -1,    -1,    44,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,    59,    60,
    -1,    62,    -1,    -1,    -1,    -1,    41,    -1,    -1,    44,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    58,    59,    60,    -1,    62,    -1,   257,
   258,   259,    93,   261,   262,   263,   264,   265,   266,   267,
   268,   269,    -1,   271,   272,   273,   274,    -1,    -1,    -1,
   278,   279,   280,    -1,   282,   257,   258,   259,    93,   261,
   262,   263,   264,   265,   266,   267,   268,   269,     0,   271,
   272,   273,   274,    -1,    -1,    -1,   278,   279,   280,    -1,
   282,    -1,   257,   258,   259,    -1,   261,   262,   263,   264,
   265,   266,   267,   268,   269,     0,   271,   272,   273,   274,
    -1,    -1,    -1,   278,   279,   280,    -1,   282,    -1,    41,
    -1,    -1,    44,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,     0,    -1,    -1,    -1,    -1,    58,    59,    60,    -1,
    62,    -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,    44,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    58,    59,    -1,    -1,    -1,    -1,    -1,
    -1,    93,    41,    -1,    -1,    44,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,
    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,   257,   258,   259,    -1,
   261,   262,   263,   264,   265,   266,   267,   268,   269,     0,
   271,   272,   273,   274,    93,    -1,    -1,   278,   279,   280,
    -1,   282,   257,   258,   259,    -1,   261,   262,   263,   264,
   265,   266,   267,   268,   269,    -1,   271,   272,   273,   274,
    -1,    -1,    -1,   278,   279,   280,    -1,   282,    -1,    -1,
    41,    -1,    -1,    44,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,     2,    -1,    -1,    37,    38,    -1,    58,    59,    42,
    43,    -1,    45,    -1,    47,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    62,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,    -1,
    -1,    94,    -1,    -1,    -1,   257,   258,   259,    -1,   261,
   262,   263,   264,   265,   266,   267,   268,   269,    -1,   271,
   272,   273,   274,    -1,    -1,    -1,   278,   279,   280,    -1,
   282,   124,   257,   258,   259,    96,   261,   262,   263,   264,
   265,   266,   267,   268,   269,    -1,    -1,   108,    -1,    -1,
    -1,    -1,    -1,   278,   279,   280,    -1,   282,   257,   258,
   259,    -1,   261,   262,   263,   264,   265,   266,   267,   268,
   269,    -1,    -1,    -1,    -1,    -1,   137,    -1,    -1,   278,
   279,   280,    -1,   282,    -1,    37,    38,    -1,    -1,    -1,
    42,    43,   153,    45,    -1,    47,   157,    -1,    -1,    -1,
    -1,    -1,    -1,   164,    -1,    -1,    58,    -1,    60,    -1,
    62,    -1,    -1,    -1,   175,    -1,   177,    -1,    -1,    -1,
    37,    38,    -1,    -1,    -1,    42,    43,    -1,    45,   190,
    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,
    -1,    58,    94,    60,    -1,    62,   257,   258,   259,    -1,
   261,   262,   263,   264,   265,   266,   267,   268,   269,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,   278,   279,   280,
    -1,   282,   124,    -1,    91,   268,   269,    94,   271,   272,
   273,   274,   275,    -1,    -1,    -1,    37,    38,    -1,   282,
    41,    42,    43,    -1,    45,    -1,    47,    -1,    37,    38,
    -1,    -1,    -1,    42,    43,    -1,    45,   124,    47,    60,
    -1,    62,    37,    38,    -1,    -1,    -1,    42,    43,    -1,
    45,    60,    47,    62,    37,    38,    -1,    -1,    -1,    42,
    43,    -1,    45,    58,    47,    60,    -1,    62,    -1,    -1,
    91,    -1,    -1,    94,    -1,    -1,    -1,    60,    -1,    62,
    -1,    -1,    91,    -1,    93,    94,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    91,    -1,    -1,    94,
    -1,    -1,    -1,   124,    -1,    -1,    -1,    -1,    91,    -1,
    -1,    94,    37,    38,    -1,   124,    -1,    42,    43,    -1,
    45,    -1,    47,    -1,    -1,    -1,    37,    38,    -1,   124,
    -1,    42,    43,    -1,    45,    60,    47,    62,    -1,    -1,
    -1,   124,    -1,    -1,    -1,    -1,   268,   269,    -1,   271,
   272,   273,   274,   275,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    91,    -1,    -1,    94,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    91,   268,   269,    94,   271,   272,   273,   274,   275,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   124,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   124,    -1,     6,     7,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    -1,
    -1,    -1,    33,    34,    35,    36,    37,   268,   269,    -1,
   271,   272,   273,   274,   275,    -1,    -1,    -1,    -1,   268,
   269,    -1,   271,   272,   273,   274,   275,     2,    -1,     4,
    -1,    -1,    -1,   268,   269,    -1,   271,   272,   273,   274,
   275,    72,    -1,    74,    -1,   268,   269,    -1,   271,   272,
   273,   274,   275,    -1,    -1,    -1,    -1,    -1,    89,    90,
    91,    92,    93,    94,    95,    -1,    97,    98,    99,   100,
   101,   102,   103,   104,   105,   106,   107,    -1,    -1,    -1,
    -1,   112,    -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,   128,    -1,    -1,
    -1,    -1,    77,    -1,    -1,    -1,   271,   272,   273,   274,
   275,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    96,    -1,    -1,   275,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,   163,   108,   165,    -1,    -1,    -1,    -1,    -1,
   171,    -1,   173,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,   137,    -1,    -1,   196,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   153,    -1,
    -1,    -1,   157,    -1,    -1,    -1,    -1,    -1,    -1,   164,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   175,    -1,   177,   178,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,   190,
    };

//t  /** printable rules for debugging.
//t    */
//t  protected static final java.lang.String [] yyRule = {
//t    "$accept : prgm",
//t    "yy.1 :",
//t    "yy.1 : yy.1 top_stmt",
//t    "prgm : yy.1",
//t    "yy.2 : stmt",
//t    "yy.2 : funcdecl",
//t    "top_stmt : yy.2",
//t    "stmt : ifstmt",
//t    "stmt : whilestmt",
//t    "stmt : assign",
//t    "stmt : print",
//t    "stmt : read",
//t    "stmt : call",
//t    "stmt : glbdecl",
//t    "stmt : eolcls",
//t    "yy.3 :",
//t    "yy.3 : yy.3 elifblock",
//t    "yy.4 :",
//t    "yy.4 : elseblock",
//t    "ifstmt : ifblock yy.3 yy.4 _263",
//t    "yy.5 : stmt",
//t    "yy.5 : yy.5 stmt",
//t    "ifblock : _262 expr ':' yy.5",
//t    "yy.6 : stmt",
//t    "yy.6 : yy.6 stmt",
//t    "elifblock : _264 expr ':' yy.6",
//t    "yy.7 : stmt",
//t    "yy.7 : yy.7 stmt",
//t    "elseblock : _265 ':' yy.7",
//t    "yy.8 : stmt",
//t    "yy.8 : yy.8 stmt",
//t    "whilestmt : _266 expr ':' yy.8 _267",
//t    "glbdecl : global ident",
//t    "yy.9 : '[' expr ']'",
//t    "yy.10 :",
//t    "yy.10 : yy.9",
//t    "assign : idcls yy.10 '=' expr",
//t    "yy.11 :",
//t    "yy.11 : yy.11 stmt",
//t    "yy.12 :",
//t    "yy.12 : retcls",
//t    "funcdecl : _259 ident params ':' yy.11 yy.12 _261",
//t    "yy.13 : idcls",
//t    "yy.13 : defpar",
//t    "yy.14 : idcls",
//t    "yy.14 : defpar",
//t    "yy.15 : ',' yy.14",
//t    "yy.16 :",
//t    "yy.16 : yy.16 yy.15",
//t    "yy.17 : yy.13 yy.16",
//t    "yy.18 :",
//t    "yy.18 : yy.17",
//t    "params : '(' yy.18 ')'",
//t    "defpar : idcls '=' expr",
//t    "yy.19 :",
//t    "yy.19 : eolcls",
//t    "retcls : typecls _260 expr yy.19",
//t    "print : _257 expr",
//t    "read : _258 idcls",
//t    "lt : expr '<' expr",
//t    "lte : expr _271 expr",
//t    "gt : expr '>' expr",
//t    "gte : expr _272 expr",
//t    "eq : expr _274 expr",
//t    "neq : expr _273 expr",
//t    "lgand : expr _268 expr",
//t    "lgor : expr _269 expr",
//t    "lgnot : _270 expr",
//t    "expr : add",
//t    "expr : sub",
//t    "expr : mul",
//t    "expr : div",
//t    "expr : mod",
//t    "expr : exp",
//t    "expr : bwand",
//t    "expr : bwor",
//t    "expr : bwxor",
//t    "expr : bwnot",
//t    "expr : parens",
//t    "expr : uneg",
//t    "expr : upos",
//t    "expr : numcls",
//t    "expr : idcls",
//t    "expr : strcls",
//t    "expr : index",
//t    "expr : lt",
//t    "expr : lte",
//t    "expr : gt",
//t    "expr : gte",
//t    "expr : eq",
//t    "expr : neq",
//t    "expr : lgand",
//t    "expr : lgor",
//t    "expr : lgnot",
//t    "expr : boolcls",
//t    "expr : cast",
//t    "expr : call",
//t    "expr : arraylit",
//t    "add : expr '+' expr",
//t    "sub : expr '-' expr",
//t    "mul : expr '*' expr",
//t    "div : expr '/' expr",
//t    "mod : expr '%' expr",
//t    "exp : expr _275 expr",
//t    "bwand : expr '&' expr",
//t    "bwor : expr '|' expr",
//t    "bwxor : expr '^' expr",
//t    "bwnot : '~' expr",
//t    "yy.20 : ',' expr",
//t    "yy.21 :",
//t    "yy.21 : yy.21 yy.20",
//t    "yy.22 : expr yy.21",
//t    "yy.23 :",
//t    "yy.23 : yy.22",
//t    "call : ident '(' yy.23 ')'",
//t    "yy.24 : ',' expr",
//t    "yy.25 :",
//t    "yy.25 : yy.25 yy.24",
//t    "yy.26 : expr yy.25",
//t    "yy.27 :",
//t    "yy.27 : yy.26",
//t    "arraylit : '[' yy.27 ']'",
//t    "parens : '(' expr ')'",
//t    "cast : '(' typecls ')' expr",
//t    "uneg : '-' expr",
//t    "upos : '+' expr",
//t    "boolcls : bool",
//t    "strcls : str",
//t    "numcls : number",
//t    "typecls : type",
//t    "idcls : ident",
//t    "eolcls : eol",
//t    "eolcls : ';'",
//t    "yy.28 : range",
//t    "yy.28 : expr",
//t    "index : expr '[' yy.28 ']'",
//t    "yy.29 :",
//t    "yy.29 : expr",
//t    "yy.30 :",
//t    "yy.30 : expr",
//t    "range : yy.29 ':' yy.30",
//t    };
//t
//t  /** index-checked interface to {@link #yyNames}.
//t      @param token single character or <tt>%token</tt> value.
//t      @return token name or <tt>[illegal]</tt> or <tt>[unknown]</tt>.
//t    */
//t  public static final java.lang.String yyName (int token) {
//t    if (token < 0 || token > yyNames.length) return "[illegal]";
//t    java.lang.String name;
//t    if ((name = yyNames[token]) != null) return name;
//t    return "[unknown]";
//t  }
//t
  /** thrown for irrecoverable syntax errors and stack overflow.
      Nested for convenience, does not depend on parser class.
    */
  public static class yyException extends java.lang.Exception {
    public yyException (java.lang.String message) {
      super(message);
    }
  }

  /** must be implemented by a scanner object to supply input to the parser.
      Nested for convenience, does not depend on parser class.
    */
  public interface yyInput {

    /** move on to next token.
        @return <tt>false</tt> if positioned beyond tokens.
        @throws IOException on input error.
      */
    boolean advance () throws java.io.IOException;

    /** classifies current token.
        Should not be called if {@link #advance()} returned <tt>false</tt>.
        @return current <tt>%token</tt> or single character.
      */
    int token ();

    /** associated with current token.
        Should not be called if {@link #advance()} returned <tt>false</tt>.
        @return value for {@link #token()}.
      */
    java.lang.Object value ();

    /** should return a position indication for parser error messages.
      */
    java.lang.String toString ();
  }

  /** simplified error message.
      @see #yyerror(java.lang.String, java.lang.String[])
    */
  public void yyerror (java.lang.String message) {
    yyerror(message, null);
  }

  /** (syntax) error message.
      Can be overwritten to control message format.
      @param message text to be displayed.
      @param expected list of acceptable tokens, if available.
    */
  public void yyerror (java.lang.String message, java.lang.String[] expected) {
    if (expected != null && expected.length > 0) {
      System.err.print(message+", expecting");
      for (int n = 0; n < expected.length; ++ n)
        System.err.print(" "+expected[n]);
      System.err.println();
    } else
      System.err.println(message);
  }

  /** computes list of expected tokens on error by tracing the tables.
      @param state for which to compute the list.
      @return list of token names.
    */
  protected java.lang.String[] yyExpecting (int state) {
    int token, n, len = 0;
    boolean[] ok = new boolean[yyNames.length];

    if ((n = yySindex[state]) != 0)
      for (token = n < 0 ? -n : 0;
           token < yyNames.length && n+token < yyTable.length; ++ token)
        if (yyCheck[n+token] == token && !ok[token] && yyNames[token] != null) {
          ++ len;
          ok[token] = true;
        }
    if ((n = yyRindex[state]) != 0)
      for (token = n < 0 ? -n : 0;
           token < yyNames.length && n+token < yyTable.length; ++ token)
        if (yyCheck[n+token] == token && !ok[token] && yyNames[token] != null) {
          ++ len;
          ok[token] = true;
        }

    java.lang.String result[] = new java.lang.String[len];
    for (n = token = 0; n < len;  ++ token)
      if (ok[token]) result[n++] = yyNames[token];
    return result;
  }

  /** initial size and increment of the state/value stack [default 256].
      This is not final so that it can be overwritten outside of invocations
      of {@link #yyparse}.
    */
  protected int yyMax;

  /** executed at the beginning of a reduce action.
      Used as <tt>$$ = yyDefault($1)</tt>, prior to the user-specified action, if any.
      Can be overwritten to provide deep copy, etc.
      @param first value for <tt>$1</tt>, or <tt>null</tt>.
      @return first.
    */
  protected java.lang.Object yyDefault (java.lang.Object first) {
    return first;
  }

  /** the generated parser.
      Maintains a dynamic state and value stack.
      @param yyLex scanner.
      @param yyarg [0] debug message writer implementing <tt>yyDebug</tt>,
        and/or tree builder for <tt>yybuild()</tt>.
      @return result of the last reduction, if any.
      @throws yyException on irrecoverable parse error.
    */
  public java.lang.Object yyparse (yyInput yyLex, java.lang.Object... yyarg)
      throws java.io.IOException, yyException {
    java.lang.Object yyBuilder = yyarg.length > 0 ? yyarg[0] : null;
//t    jay.yydebug.yyDebug yydebug = yyBuilder instanceof jay.yydebug.yyDebug
//t      ? (jay.yydebug.yyDebug)yyBuilder : null;
    if (yyMax <= 0) yyMax = 256;			// initial size
    int yyState = 0, yyStates[] = new int[yyMax];	// state stack
    java.lang.Object yyVal = null, yyVals[] = new java.lang.Object[yyMax];	// value stack
    int yyToken = -1;					// current input
    int yyErrorFlag = 0;				// #tokens to shift

    yyLoop: for (int yyTop = 0;; ++ yyTop) {
      if (yyTop >= yyStates.length) {			// dynamically increase
        int[] i = new int[yyStates.length+yyMax];
        System.arraycopy(yyStates, 0, i, 0, yyStates.length);
        yyStates = i;
        java.lang.Object[] o = new java.lang.Object[yyVals.length+yyMax];
        System.arraycopy(yyVals, 0, o, 0, yyVals.length);
        yyVals = o;
      }
      yyStates[yyTop] = yyState;
      yyVals[yyTop] = yyVal;
//t      if (yydebug != null) yydebug.push(yyState, yyVal);

      yyDiscarded: for (;;) {	// discarding a token does not change stack
        int yyN;
        if ((yyN = yyDefRed[yyState]) == 0) {	// else [default] reduce (yyN)
          if (yyToken < 0) {
            yyToken = yyLex.advance() ? yyLex.token() : 0;
//t            if (yydebug != null)
//t              yydebug.lex(yyState, yyToken, yyName(yyToken), yyLex.value());
          }
          if ((yyN = yySindex[yyState]) != 0 && (yyN += yyToken) >= 0
              && yyN < yyTable.length && yyCheck[yyN] == yyToken) {
//t            if (yydebug != null)
//t              yydebug.shift(yyState, yyTable[yyN], yyErrorFlag > 0 ? yyErrorFlag-1 : 0);
            yyState = yyTable[yyN];		// shift to yyN
            yyVal = yyLex.value();
            yyToken = -1;
            if (yyErrorFlag > 0) -- yyErrorFlag;
            continue yyLoop;
          }
          if ((yyN = yyRindex[yyState]) != 0 && (yyN += yyToken) >= 0
              && yyN < yyTable.length && yyCheck[yyN] == yyToken)
            yyN = yyTable[yyN];			// reduce (yyN)
          else
            switch (yyErrorFlag) {
  
            case 0:
              yyerror(yyLex+": syntax error", yyExpecting(yyState));
//t              if (yydebug != null) yydebug.error(yyLex+": syntax error");
  
            case 1: case 2:
              yyErrorFlag = 3;
              do {
                if ((yyN = yySindex[yyStates[yyTop]]) != 0
                    && (yyN += yyErrorCode) >= 0 && yyN < yyTable.length
                    && yyCheck[yyN] == yyErrorCode) {
//t                  if (yydebug != null)
//t                    yydebug.shift(yyStates[yyTop], yyTable[yyN], 3);
                  yyState = yyTable[yyN];
                  yyVal = yyLex.value();
                  continue yyLoop;
                }
//t                if (yydebug != null) yydebug.pop(yyStates[yyTop]);
              } while (-- yyTop >= 0);
//t              if (yydebug != null) yydebug.reject();
              throw new yyException(yyLex+": irrecoverable syntax error");
  
            case 3:
              if (yyToken == 0) {
//t                if (yydebug != null) yydebug.reject();
                throw new yyException("at end-of-file: irrecoverable syntax error");
              }
//t              if (yydebug != null)
//t                yydebug.discard(yyState, yyToken, yyName(yyToken), yyLex.value());
              yyToken = -1;
              continue yyDiscarded;		// leave stack alone
            }
        }
        int yyV = yyTop + 1-yyLen[yyN];
//t        if (yydebug != null)
//t          yydebug.reduce(yyState, yyStates[yyV-1], yyN, yyRule[yyN], yyLen[yyN]);
        yyVal = yyDefault(yyV > yyTop ? null : yyVals[yyV]);
        switch (yyN) {
case 1:
					// line 172 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild0(yyLex, yyBuilder, "yy.1"); }
  break;
case 2:
					// line 173 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.1", ((java.lang.Object)yyVals[-1+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 3:
					// line 174 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "prgm", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 4:
					// line 175 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.2", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 5:
					// line 176 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.2", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 6:
					// line 177 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "top_stmt", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 7:
					// line 178 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "stmt", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 8:
					// line 179 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "stmt", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 9:
					// line 180 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "stmt", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 10:
					// line 181 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "stmt", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 11:
					// line 182 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "stmt", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 12:
					// line 183 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "stmt", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 13:
					// line 184 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "stmt", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 14:
					// line 185 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "stmt", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 15:
					// line 186 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild0(yyLex, yyBuilder, "yy.3"); }
  break;
case 16:
					// line 187 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.3", ((java.lang.Object)yyVals[-1+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 17:
					// line 188 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild0(yyLex, yyBuilder, "yy.4"); }
  break;
case 18:
					// line 189 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.4", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 19:
					// line 190 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "ifstmt", ((java.lang.Object)yyVals[-3+yyTop]), ((java.lang.Object)yyVals[-2+yyTop]), ((java.lang.Object)yyVals[-1+yyTop])); }
  break;
case 20:
					// line 191 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.5", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 21:
					// line 192 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.5", ((java.lang.Object)yyVals[-1+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 22:
					// line 193 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "ifblock", ((java.lang.Object)yyVals[-2+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 23:
					// line 194 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.6", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 24:
					// line 195 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.6", ((java.lang.Object)yyVals[-1+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 25:
					// line 196 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "elifblock", ((java.lang.Object)yyVals[-2+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 26:
					// line 197 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.7", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 27:
					// line 198 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.7", ((java.lang.Object)yyVals[-1+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 28:
					// line 199 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "elseblock", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 29:
					// line 200 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.8", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 30:
					// line 201 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.8", ((java.lang.Object)yyVals[-1+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 31:
					// line 202 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "whilestmt", ((java.lang.Object)yyVals[-3+yyTop]), ((java.lang.Object)yyVals[-1+yyTop])); }
  break;
case 32:
					// line 203 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "glbdecl", ((String)yyVals[-1+yyTop]), ((String)yyVals[0+yyTop])); }
  break;
case 33:
					// line 204 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.9", ((java.lang.Object)yyVals[-1+yyTop])); }
  break;
case 34:
					// line 205 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild0(yyLex, yyBuilder, "yy.10"); }
  break;
case 35:
					// line 206 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.10", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 36:
					// line 207 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "assign", ((java.lang.Object)yyVals[-3+yyTop]), ((java.lang.Object)yyVals[-2+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 37:
					// line 208 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild0(yyLex, yyBuilder, "yy.11"); }
  break;
case 38:
					// line 209 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.11", ((java.lang.Object)yyVals[-1+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 39:
					// line 210 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild0(yyLex, yyBuilder, "yy.12"); }
  break;
case 40:
					// line 211 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.12", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 41:
					// line 212 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "funcdecl", ((String)yyVals[-5+yyTop]), ((java.lang.Object)yyVals[-4+yyTop]), ((java.lang.Object)yyVals[-2+yyTop]), ((java.lang.Object)yyVals[-1+yyTop])); }
  break;
case 42:
					// line 213 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.13", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 43:
					// line 214 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.13", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 44:
					// line 215 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.14", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 45:
					// line 216 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.14", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 46:
					// line 217 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.15", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 47:
					// line 218 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild0(yyLex, yyBuilder, "yy.16"); }
  break;
case 48:
					// line 219 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.16", ((java.lang.Object)yyVals[-1+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 49:
					// line 220 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.17", ((java.lang.Object)yyVals[-1+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 50:
					// line 221 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild0(yyLex, yyBuilder, "yy.18"); }
  break;
case 51:
					// line 222 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.18", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 52:
					// line 223 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "params", ((java.lang.Object)yyVals[-1+yyTop])); }
  break;
case 53:
					// line 224 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "defpar", ((java.lang.Object)yyVals[-2+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 54:
					// line 225 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild0(yyLex, yyBuilder, "yy.19"); }
  break;
case 55:
					// line 226 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.19", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 56:
					// line 227 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "retcls", ((java.lang.Object)yyVals[-3+yyTop]), ((java.lang.Object)yyVals[-1+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 57:
					// line 228 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "print", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 58:
					// line 229 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "read", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 59:
					// line 230 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "lt", ((java.lang.Object)yyVals[-2+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 60:
					// line 231 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "lte", ((java.lang.Object)yyVals[-2+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 61:
					// line 232 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "gt", ((java.lang.Object)yyVals[-2+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 62:
					// line 233 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "gte", ((java.lang.Object)yyVals[-2+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 63:
					// line 234 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "eq", ((java.lang.Object)yyVals[-2+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 64:
					// line 235 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "neq", ((java.lang.Object)yyVals[-2+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 65:
					// line 236 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "lgand", ((java.lang.Object)yyVals[-2+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 66:
					// line 237 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "lgor", ((java.lang.Object)yyVals[-2+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 67:
					// line 238 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "lgnot", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 68:
					// line 239 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 69:
					// line 240 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 70:
					// line 241 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 71:
					// line 242 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 72:
					// line 243 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 73:
					// line 244 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 74:
					// line 245 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 75:
					// line 246 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 76:
					// line 247 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 77:
					// line 248 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 78:
					// line 249 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 79:
					// line 250 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 80:
					// line 251 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 81:
					// line 252 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 82:
					// line 253 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 83:
					// line 254 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 84:
					// line 255 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 85:
					// line 256 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 86:
					// line 257 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 87:
					// line 258 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 88:
					// line 259 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 89:
					// line 260 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 90:
					// line 261 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 91:
					// line 262 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 92:
					// line 263 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 93:
					// line 264 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 94:
					// line 265 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 95:
					// line 266 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 96:
					// line 267 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 97:
					// line 268 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "expr", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 98:
					// line 269 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "add", ((java.lang.Object)yyVals[-2+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 99:
					// line 270 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "sub", ((java.lang.Object)yyVals[-2+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 100:
					// line 271 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "mul", ((java.lang.Object)yyVals[-2+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 101:
					// line 272 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "div", ((java.lang.Object)yyVals[-2+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 102:
					// line 273 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "mod", ((java.lang.Object)yyVals[-2+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 103:
					// line 274 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "exp", ((java.lang.Object)yyVals[-2+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 104:
					// line 275 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "bwand", ((java.lang.Object)yyVals[-2+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 105:
					// line 276 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "bwor", ((java.lang.Object)yyVals[-2+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 106:
					// line 277 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "bwxor", ((java.lang.Object)yyVals[-2+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 107:
					// line 278 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "bwnot", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 108:
					// line 279 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.20", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 109:
					// line 280 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild0(yyLex, yyBuilder, "yy.21"); }
  break;
case 110:
					// line 281 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.21", ((java.lang.Object)yyVals[-1+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 111:
					// line 282 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.22", ((java.lang.Object)yyVals[-1+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 112:
					// line 283 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild0(yyLex, yyBuilder, "yy.23"); }
  break;
case 113:
					// line 284 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.23", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 114:
					// line 285 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "call", ((String)yyVals[-3+yyTop]), ((java.lang.Object)yyVals[-1+yyTop])); }
  break;
case 115:
					// line 286 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.24", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 116:
					// line 287 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild0(yyLex, yyBuilder, "yy.25"); }
  break;
case 117:
					// line 288 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.25", ((java.lang.Object)yyVals[-1+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 118:
					// line 289 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.26", ((java.lang.Object)yyVals[-1+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 119:
					// line 290 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild0(yyLex, yyBuilder, "yy.27"); }
  break;
case 120:
					// line 291 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.27", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 121:
					// line 292 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "arraylit", ((java.lang.Object)yyVals[-1+yyTop])); }
  break;
case 122:
					// line 293 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "parens", ((java.lang.Object)yyVals[-1+yyTop])); }
  break;
case 123:
					// line 294 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "cast", ((java.lang.Object)yyVals[-2+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 124:
					// line 295 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "uneg", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 125:
					// line 296 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "upos", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 126:
					// line 297 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "boolcls", ((String)yyVals[0+yyTop])); }
  break;
case 127:
					// line 298 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "strcls", ((String)yyVals[0+yyTop])); }
  break;
case 128:
					// line 299 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "numcls", ((String)yyVals[0+yyTop])); }
  break;
case 129:
					// line 300 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "typecls", ((String)yyVals[0+yyTop])); }
  break;
case 130:
					// line 301 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "idcls", ((String)yyVals[0+yyTop])); }
  break;
case 131:
					// line 302 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "eolcls", ((String)yyVals[0+yyTop])); }
  break;
case 132:
					// line 303 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "eolcls"); }
  break;
case 133:
					// line 304 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.28", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 134:
					// line 305 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.28", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 135:
					// line 306 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "index", ((java.lang.Object)yyVals[-3+yyTop]), ((java.lang.Object)yyVals[-1+yyTop])); }
  break;
case 136:
					// line 307 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild0(yyLex, yyBuilder, "yy.29"); }
  break;
case 137:
					// line 308 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.29", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 138:
					// line 309 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild0(yyLex, yyBuilder, "yy.30"); }
  break;
case 139:
					// line 310 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "yy.30", ((java.lang.Object)yyVals[0+yyTop])); }
  break;
case 140:
					// line 311 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"
  { yyVal = yybuild(yyLex, yyBuilder, "range", ((java.lang.Object)yyVals[-2+yyTop]), ((java.lang.Object)yyVals[0+yyTop])); }
  break;
					// line 1516 "-"
        }
        yyTop -= yyLen[yyN];
        yyState = yyStates[yyTop];
        int yyM = yyLhs[yyN];
        if (yyState == 0 && yyM == 0) {
//t          if (yydebug != null) yydebug.shift(0, yyFinal);
          yyState = yyFinal;
          if (yyToken < 0) {
            yyToken = yyLex.advance() ? yyLex.token() : 0;
//t            if (yydebug != null)
//t               yydebug.lex(yyState, yyToken,yyName(yyToken), yyLex.value());
          }
          if (yyToken == 0) {
//t            if (yydebug != null) yydebug.accept(yyVal);
            return yyVal;
          }
          continue yyLoop;
        }
        if ((yyN = yyGindex[yyM]) != 0 && (yyN += yyState) >= 0
            && yyN < yyTable.length && yyCheck[yyN] == yyState)
          yyState = yyTable[yyN];
        else
          yyState = yyDgoto[yyM];
//t        if (yydebug != null) yydebug.shift(yyStates[yyTop], yyState);
        continue yyLoop;
      }
    }
  }

					// line 314 "/Library/Tomcat/webapps/wcs/WEB-INF/tmp/job45534/y.input"

  /** if true, <tt>null</tt> will be stored when a totally empty
      alternative is reduced.
    */
  public boolean yyAddNull = true;
  /** executed whenever an empty alternative of a rule is reduced.
      If {@link #yyAddNull} is true, sends <tt>null</tt> to {@link #yybuild}.
    */
  protected java.lang.Object yybuild0 (yyInput yyLex,
      java.lang.Object builder, java.lang.String rule) {
    return yyAddNull
      ? yybuild(yyLex, builder, rule, (java.lang.Object)null)
      : new java.util.ArrayList(); // flattened by parent
  }
  /** executed whenever an alternative of a rule is reduced,
      called with values corresponding to {@link pj2.Parser.Id
      Id} arguments only. <tt>ArrayList</tt> arguments are
      flattened, others are not.<p>
      Silently filter by invoking
      <tt>builder.<i>rulename</i>(int,List)</tt>
      or <tt>builder.<i>rulename</i>(List)</tt>, if either,
      with the current scanner position and the flattened
      argument list.
      @return result value from builder or flattened argument
      list.
    */
  @SuppressWarnings("unchecked")
  protected java.lang.Object yybuild (yyInput yyLex,
      java.lang.Object builder, java.lang.String rule,
      java.lang.Object... arg) {
    java.util.List result = new java.util.ArrayList();
    // flatten ArrayList arg but not List arg
    for (java.lang.Object a : arg)
      if (a instanceof java.util.ArrayList)
        result.addAll((java.util.ArrayList)a);
      else result.add(a);

    // silently filter
    try { // with position
      int position = (java.lang.Integer)yyLex.getClass()
        .getMethod("position").invoke(yyLex);
      return builder.getClass()
        .getMethod(rule, int.class, java.util.List.class)
        .invoke(builder, position, result);
    } catch (java.lang.reflect.InvocationTargetException e) {
      throw new java.lang.RuntimeException("exception in builder",
        (java.lang.Throwable)e.getTargetException());
    } catch (java.lang.Exception any) {

      try { // without position
        return builder.getClass()
          .getMethod(rule, java.util.List.class)
          .invoke(builder, result);
      } catch (java.lang.reflect.InvocationTargetException e) {
        throw new java.lang.RuntimeException("exception in builder",
          (java.lang.Throwable)e.getTargetException());
      } catch (java.lang.Exception e) {
        return result;
      }
    }
  }

  /** main program to test parser.
      Does not need to know the name of the parser class,
      but assumes that the scanner class is static,
      named <tt>yyLex<tt>, and is immediately nested
      into the parser class.
    */
  public static void main (java.lang.String... arg) {
    yyInput scanner = new yyLex(System.in);
    try {
      java.lang.Object parser = scanner.getClass()
        .getEnclosingClass().newInstance();
      // arg[0]: if specified, toggle null storage
      if (arg != null && arg.length > 0) {
        java.lang.reflect.Field yyAddNull = parser.getClass().getField("yyAddNull");
        yyAddNull.setBoolean(parser, yyAddNull.getBoolean(parser) ^ true);
      }
      // build tree, dump
      java.lang.Object tree = parser.getClass()
        .getMethod("yyparse", new java.lang.Class[]{
          yyInput.class, java.lang.Object[].class })
        .invoke(parser, scanner,
          new java.lang.Object[]{ new yyTree() });
      pj2.Dump.dump(new java.io.PrintWriter(System.out, true), "", tree);
    } catch (java.lang.NoSuchFieldException e) {
      System.err.println("cannot create parser ["+e+"]");
      System.exit(1);
    } catch (java.lang.InstantiationException e) {
      System.err.println("cannot create parser ["+e+"]");
      System.exit(1);
    } catch (java.lang.IllegalAccessException e) {
      System.err.println("cannot create parser ["+e+"]");
      System.exit(1);
    } catch (java.lang.NoSuchMethodException e) {
      System.err.println("cannot create parser ["+e+"]");
      System.exit(1);
    } catch (java.lang.reflect.InvocationTargetException e) {
      System.err.println("parse error ["+e+"]");
      System.exit(1);
    }
  }
// JLex 1.2.6 (c) 1996-2003 by Elliot Joel Berk and C. Scott Ananian
  public static
// created by pj2.Gen 2.0.1/2.0.0 (c) 2008 axel.schreiner@rit.edu


class yyLex implements yyInput {
	private final int YY_BUFFER_SIZE = 512;
	private final int YY_F = -1;
	private final int YY_NO_STATE = -1;
	private final int YY_NOT_ACCEPT = 0;
	private final int YY_START = 1;
	private final int YY_END = 2;
	private final int YY_NO_ANCHOR = 4;
	private final int YY_BOL = 128;
	private final int YY_EOF = 129;

  /** main program, generates and tests a scanner
      on standard input.
    */
  public static void main (java.lang.String[] args)
      throws java.io.IOException {
    main(new yyLex(System.in));
  }
  /** scanner test driver.
    */
  public static void main (yyInput scanner)
      throws java.io.IOException {
    System.out.println("scanner\t\ttoken\tvalue");
    while (scanner.advance()) {
      java.lang.StringBuffer s = new java.lang.StringBuffer();
      s.append(scanner).append('\t');
      try { // legal token values are mapped in yyNames
        s.append(yyNames[scanner.token()].toString());
      } catch (java.lang.Exception e) { // illegals are numbers
        s.append(scanner.token());
      }
      try { // suppress null
        s.append("\t"+visible(scanner.value().toString()));
      } catch (java.lang.Exception e) { }
      System.out.println(s);
    }
  }
  /** position for error message.
    */
  public java.lang.String toString () {
    java.lang.String token = yytext();
    return "("+position()+")"
      +(token != null && token.length() > 0
        ? " at \""+visible(token)+"\"" : "");
  }
  /** returned by {@link #token()}.
    */
  protected int token;
  /** current input symbol.
    */
  public int token () { return token; }
  /** returned by {@link #value()}.
    */
  protected java.lang.Object value;
  /** null or object associated with current input symbol.
    */
  public java.lang.Object value () { return value; }
  /** current line number, based at 1.
    */
  public int position () { return yyline+1; }
  /** return a <i>JLex</i>-style visible rendering of a string.
    */
  public static java.lang.String visible (java.lang.String s) {
    if (s == null) return "[null]";
    java.lang.StringBuffer b = new java.lang.StringBuffer();
    for (int n = 0; n < s.length(); ++ n) {
      char ch = s.charAt(n);
      switch (ch) {
      case '\b': b.append("\\b"); continue;
      case '\f': b.append("\\f"); continue;
      case '\n': b.append("\\n"); continue;
      case '\r': b.append("\\r"); continue;
      case '\t': b.append("\\t"); continue;
      case '\'': b.append("\\'"); continue;
      case '\"': b.append("\\\""); continue;
      case '\\': b.append("\\\\"); continue;
      }
      if (ch < 26)
        b.append("\\^").append((char)('A'+ch));
      else if (ch < ' ')
        b.append("\\3").append((char)('0' + ch-24));
      else if (ch <= '~')
        b.append(ch);
      else if (ch <= 0377)
        b.append("\\").append(java.lang.Integer.toOctalString(ch));
      else if (ch <= 0x1000)
        b.append("\\u0").append(java.lang.Integer.toHexString(ch));
      else
        b.append("\\u").append(java.lang.Integer.toHexString(ch));
      }
    return b.toString();
  }
	private java.io.BufferedReader yy_reader;
	private int yy_buffer_index;
	private int yy_buffer_read;
	private int yy_buffer_start;
	private int yy_buffer_end;
	private char yy_buffer[];
	private int yyline;
	private boolean yy_at_bol;
	private int yy_lexical_state;

	public yyLex (java.io.Reader reader) {
		this ();
		if (null == reader) {
			throw (new Error("Error: Bad input stream initializer."));
		}
		yy_reader = new java.io.BufferedReader(reader);
	}

	public yyLex (java.io.InputStream instream) {
		this ();
		if (null == instream) {
			throw (new Error("Error: Bad input stream initializer."));
		}
		yy_reader = new java.io.BufferedReader(new java.io.InputStreamReader(instream));
	}

	private yyLex () {
		yy_buffer = new char[YY_BUFFER_SIZE];
		yy_buffer_read = 0;
		yy_buffer_index = 0;
		yy_buffer_start = 0;
		yy_buffer_end = 0;
		yyline = 0;
		yy_at_bol = true;
		yy_lexical_state = YYINITIAL;
	}

	private boolean yy_eof_done = false;
	private final int YYINITIAL = 0;
	private final int yy_state_dtrans[] = {
		0
	};
	private void yybegin (int state) {
		yy_lexical_state = state;
	}
	private int yy_advance ()
		throws java.io.IOException {
		int next_read;
		int i;
		int j;

		if (yy_buffer_index < yy_buffer_read) {
			return yy_buffer[yy_buffer_index++];
		}

		if (0 != yy_buffer_start) {
			i = yy_buffer_start;
			j = 0;
			while (i < yy_buffer_read) {
				yy_buffer[j] = yy_buffer[i];
				++i;
				++j;
			}
			yy_buffer_end = yy_buffer_end - yy_buffer_start;
			yy_buffer_start = 0;
			yy_buffer_read = j;
			yy_buffer_index = j;
			next_read = yy_reader.read(yy_buffer,
					yy_buffer_read,
					yy_buffer.length - yy_buffer_read);
			if (-1 == next_read) {
				return YY_EOF;
			}
			yy_buffer_read = yy_buffer_read + next_read;
		}

		while (yy_buffer_index >= yy_buffer_read) {
			if (yy_buffer_index >= yy_buffer.length) {
				yy_buffer = yy_double(yy_buffer);
			}
			next_read = yy_reader.read(yy_buffer,
					yy_buffer_read,
					yy_buffer.length - yy_buffer_read);
			if (-1 == next_read) {
				return YY_EOF;
			}
			yy_buffer_read = yy_buffer_read + next_read;
		}
		return yy_buffer[yy_buffer_index++];
	}
	private void yy_move_end () {
		if (yy_buffer_end > yy_buffer_start &&
		    '\n' == yy_buffer[yy_buffer_end-1])
			yy_buffer_end--;
		if (yy_buffer_end > yy_buffer_start &&
		    '\r' == yy_buffer[yy_buffer_end-1])
			yy_buffer_end--;
	}
	private boolean yy_last_was_cr=false;
	private void yy_mark_start () {
		int i;
		for (i = yy_buffer_start; i < yy_buffer_index; ++i) {
			if ('\n' == yy_buffer[i] && !yy_last_was_cr) {
				++yyline;
			}
			if ('\r' == yy_buffer[i]) {
				++yyline;
				yy_last_was_cr=true;
			} else yy_last_was_cr=false;
		}
		yy_buffer_start = yy_buffer_index;
	}
	private void yy_mark_end () {
		yy_buffer_end = yy_buffer_index;
	}
	private void yy_to_mark () {
		yy_buffer_index = yy_buffer_end;
		yy_at_bol = (yy_buffer_end > yy_buffer_start) &&
		            ('\r' == yy_buffer[yy_buffer_end-1] ||
		             '\n' == yy_buffer[yy_buffer_end-1] ||
		             2028/*LS*/ == yy_buffer[yy_buffer_end-1] ||
		             2029/*PS*/ == yy_buffer[yy_buffer_end-1]);
	}
	private String yytext () {
		return (new String(yy_buffer,
			yy_buffer_start,
			yy_buffer_end - yy_buffer_start));
	}
	private int yylength () {
		return yy_buffer_end - yy_buffer_start;
	}
	private char[] yy_double (char buf[]) {
		int i;
		char newbuf[];
		newbuf = new char[2*buf.length];
		for (i = 0; i < buf.length; ++i) {
			newbuf[i] = buf[i];
		}
		return newbuf;
	}
	private final int YY_E_INTERNAL = 0;
	private final int YY_E_MATCH = 1;
	private String yy_error_string[] = {
		"Error: Internal error.\n",
		"Error: Unmatched input.\n"
	};
	private void yy_error (int code,boolean fatal) {
		System.out.print(yy_error_string[code]);
		System.out.flush();
		if (fatal) {
			throw new Error("Fatal Error.\n");
		}
	}
	private int[][] unpackFromString(int size1, int size2, String st) {
		int colonIndex = -1;
		String lengthString;
		int sequenceLength = 0;
		int sequenceInteger = 0;

		int commaIndex;
		String workString;

		int res[][] = new int[size1][size2];
		for (int i= 0; i < size1; i++) {
			for (int j= 0; j < size2; j++) {
				if (sequenceLength != 0) {
					res[i][j] = sequenceInteger;
					sequenceLength--;
					continue;
				}
				commaIndex = st.indexOf(',');
				workString = (commaIndex==-1) ? st :
					st.substring(0, commaIndex);
				st = st.substring(commaIndex+1);
				colonIndex = workString.indexOf(':');
				if (colonIndex == -1) {
					res[i][j]=Integer.parseInt(workString);
					continue;
				}
				lengthString =
					workString.substring(colonIndex+1);
				sequenceLength=Integer.parseInt(lengthString);
				workString=workString.substring(0,colonIndex);
				sequenceInteger=Integer.parseInt(workString);
				res[i][j] = sequenceInteger;
				sequenceLength--;
			}
		}
		return res;
	}
	private int yy_acpt[] = {
		/* 0 */ YY_NOT_ACCEPT,
		/* 1 */ YY_NO_ANCHOR,
		/* 2 */ YY_NO_ANCHOR,
		/* 3 */ YY_NO_ANCHOR,
		/* 4 */ YY_NO_ANCHOR,
		/* 5 */ YY_NO_ANCHOR,
		/* 6 */ YY_NO_ANCHOR,
		/* 7 */ YY_NO_ANCHOR,
		/* 8 */ YY_NO_ANCHOR,
		/* 9 */ YY_NO_ANCHOR,
		/* 10 */ YY_NO_ANCHOR,
		/* 11 */ YY_NO_ANCHOR,
		/* 12 */ YY_NO_ANCHOR,
		/* 13 */ YY_NO_ANCHOR,
		/* 14 */ YY_NO_ANCHOR,
		/* 15 */ YY_NO_ANCHOR,
		/* 16 */ YY_END,
		/* 17 */ YY_NO_ANCHOR,
		/* 18 */ YY_NO_ANCHOR,
		/* 19 */ YY_NO_ANCHOR,
		/* 20 */ YY_NO_ANCHOR,
		/* 21 */ YY_NO_ANCHOR,
		/* 22 */ YY_NO_ANCHOR,
		/* 23 */ YY_NO_ANCHOR,
		/* 24 */ YY_NO_ANCHOR,
		/* 25 */ YY_NO_ANCHOR,
		/* 26 */ YY_NO_ANCHOR,
		/* 27 */ YY_NO_ANCHOR,
		/* 28 */ YY_NO_ANCHOR,
		/* 29 */ YY_NO_ANCHOR,
		/* 30 */ YY_NO_ANCHOR,
		/* 31 */ YY_NOT_ACCEPT,
		/* 32 */ YY_NO_ANCHOR,
		/* 33 */ YY_NO_ANCHOR,
		/* 34 */ YY_END,
		/* 35 */ YY_NO_ANCHOR,
		/* 36 */ YY_NOT_ACCEPT,
		/* 37 */ YY_NO_ANCHOR,
		/* 38 */ YY_NO_ANCHOR,
		/* 39 */ YY_NOT_ACCEPT,
		/* 40 */ YY_NO_ANCHOR,
		/* 41 */ YY_NO_ANCHOR,
		/* 42 */ YY_NO_ANCHOR,
		/* 43 */ YY_NO_ANCHOR,
		/* 44 */ YY_NO_ANCHOR,
		/* 45 */ YY_NO_ANCHOR,
		/* 46 */ YY_NO_ANCHOR,
		/* 47 */ YY_NO_ANCHOR,
		/* 48 */ YY_NO_ANCHOR,
		/* 49 */ YY_NO_ANCHOR,
		/* 50 */ YY_NO_ANCHOR,
		/* 51 */ YY_NO_ANCHOR,
		/* 52 */ YY_NO_ANCHOR,
		/* 53 */ YY_NO_ANCHOR,
		/* 54 */ YY_NO_ANCHOR,
		/* 55 */ YY_NO_ANCHOR,
		/* 56 */ YY_NO_ANCHOR,
		/* 57 */ YY_NO_ANCHOR,
		/* 58 */ YY_NO_ANCHOR,
		/* 59 */ YY_NO_ANCHOR,
		/* 60 */ YY_NO_ANCHOR,
		/* 61 */ YY_NO_ANCHOR,
		/* 62 */ YY_NO_ANCHOR,
		/* 63 */ YY_NO_ANCHOR,
		/* 64 */ YY_NO_ANCHOR,
		/* 65 */ YY_NO_ANCHOR,
		/* 66 */ YY_NO_ANCHOR,
		/* 67 */ YY_NO_ANCHOR,
		/* 68 */ YY_NO_ANCHOR,
		/* 69 */ YY_NO_ANCHOR,
		/* 70 */ YY_NO_ANCHOR,
		/* 71 */ YY_NO_ANCHOR,
		/* 72 */ YY_NO_ANCHOR,
		/* 73 */ YY_NO_ANCHOR,
		/* 74 */ YY_NO_ANCHOR,
		/* 75 */ YY_NO_ANCHOR,
		/* 76 */ YY_NO_ANCHOR,
		/* 77 */ YY_NO_ANCHOR,
		/* 78 */ YY_NO_ANCHOR,
		/* 79 */ YY_NO_ANCHOR,
		/* 80 */ YY_NO_ANCHOR,
		/* 81 */ YY_NO_ANCHOR,
		/* 82 */ YY_NO_ANCHOR,
		/* 83 */ YY_NO_ANCHOR,
		/* 84 */ YY_NO_ANCHOR,
		/* 85 */ YY_NO_ANCHOR,
		/* 86 */ YY_NO_ANCHOR,
		/* 87 */ YY_NO_ANCHOR,
		/* 88 */ YY_NO_ANCHOR,
		/* 89 */ YY_NO_ANCHOR,
		/* 90 */ YY_NO_ANCHOR,
		/* 91 */ YY_NO_ANCHOR
	};
	private int yy_cmap[] = unpackFromString(1,130,
"31:9,36,33,31:2,32,31:18,36,15,30,34,31:6,10,31:5,21:10,31:2,14,11,17,31:2," +
"28:5,23,28:13,22,28:6,26,31,27,31,29,31,1,25,28,3,4,9,24,7,6,28:2,5,28,2,12" +
",19,28,13,18,16,20,28,8,28:3,31:5,0,35")[0];

	private int yy_rmap[] = unpackFromString(1,92,
"0,1,2,3,4,5,6,7:2,1:2,7,1:4,8,7:3,9,7:10,10,11,12,1:2,13,14,15,16,17,18,19," +
"20,21,1,22,10,23,13,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,4" +
"2,43,44,45,46,47,48,49,50,51,52,53,54,55,56,7,57,58,59,60,61,62,63,64")[0];

	private int yy_nxt[][] = unpackFromString(65,37,
"1,2,75,81,82,83,32,83,84,37,3,33,40,85,38,41,83,43,86,87,83,4,88,89,90,91,4" +
"5:2,83,45,47,45,5:2,49,1,6,-1:38,83,42,83:7,-1:2,83:2,-1:2,83,-1,83:8,-1:2," +
"83:2,-1:17,9,-1:47,4,-1:47,5:2,-1:39,6,-1,83:9,-1:2,83:2,-1:2,83,-1,83:8,-1" +
":2,83:2,-1:40,34,-1:4,83:9,-1:2,83:2,-1:2,83,-1,83:8,39,-1,83:2,-1:8,31:29," +
"15,31,-1:2,31,-1,31,-1,83,50,83:6,7,-1:2,83:2,-1:2,83,-1,83:8,-1:2,83:2,-1:" +
"18,10,-1:26,36:31,16,34,36,34,36,-1,83:3,52,83,8,83:3,-1:2,83:2,-1:2,83,-1," +
"83:8,-1:2,83:2,-1:18,12,-1:52,35,-1:10,83:9,-1:2,83,11,-1:2,83,-1,83:8,-1:2" +
",83:2,-1:18,13,-1:26,83:2,17,83:6,-1:2,83:2,-1:2,83,-1,83:8,-1:2,83:2,-1:18" +
",14,-1:26,83:9,-1:2,83:2,-1:2,18,-1,83:8,-1:2,83:2,-1:8,83:8,19,-1:2,83:2,-" +
"1:2,83,-1,83:8,-1:2,83:2,-1:8,83:5,58,83:3,-1:2,83:2,-1:2,83,-1,59,83:7,-1:" +
"2,83:2,-1:8,83:9,-1:2,83:2,-1:2,20,-1,83:8,-1:2,83:2,-1:8,83:5,78,83:3,-1:2" +
",83:2,-1:2,83,-1,83:8,-1:2,83:2,-1:8,83:2,21,83:6,-1:2,83:2,-1:2,83,-1,83:8" +
",-1:2,83:2,-1:8,60,83:8,-1:2,83:2,-1:2,77,-1,83:8,-1:2,83:2,-1:8,83:9,-1:2," +
"83,61,-1:2,83,-1,83:8,-1:2,83:2,-1:8,83:9,-1:2,83:2,-1:2,83,-1,83:2,63,83:5" +
",-1:2,83:2,-1:8,83:4,64,83:4,-1:2,83:2,-1:2,83,-1,83:8,-1:2,83:2,-1:8,83:9," +
"-1:2,65,83,-1:2,83,-1,83:8,-1:2,83:2,-1:8,83:6,67,83,22,-1:2,83:2,-1:2,83,-" +
"1,83:8,-1:2,83:2,-1:8,83:3,23,83:5,-1:2,83:2,-1:2,83,-1,83:8,-1:2,83:2,-1:8" +
",83:2,24,83:6,-1:2,83:2,-1:2,83,-1,83:8,-1:2,83:2,-1:8,83:5,80,83:3,-1:2,83" +
":2,-1:2,83,-1,83:8,-1:2,83:2,-1:8,83,70,83:7,-1:2,83:2,-1:2,83,-1,83:8,-1:2" +
",83:2,-1:8,83:3,25,83:5,-1:2,83:2,-1:2,83,-1,83:8,-1:2,83:2,-1:8,83:9,-1:2," +
"83:2,-1:2,83,-1,63,83:7,-1:2,83:2,-1:8,83:9,-1:2,83:2,-1:2,83,-1,83:7,71,-1" +
":2,83:2,-1:8,83:4,20,83:4,-1:2,83:2,-1:2,83,-1,83:8,-1:2,83:2,-1:8,83:7,26," +
"83,-1:2,83:2,-1:2,83,-1,83:8,-1:2,83:2,-1:8,83:3,27,83:5,-1:2,83:2,-1:2,83," +
"-1,83:8,-1:2,83:2,-1:8,83:9,-1:2,83,72,-1:2,83,-1,83:8,-1:2,83:2,-1:8,83:9," +
"-1:2,83:2,-1:2,28,-1,83:8,-1:2,83:2,-1:8,74,83:8,-1:2,83:2,-1:2,83,-1,83:8," +
"-1:2,83:2,-1:8,83,29,83:7,-1:2,83:2,-1:2,83,-1,83:8,-1:2,83:2,-1:8,83:9,-1:" +
"2,83:2,-1:2,83,-1,83:6,20,83,-1:2,83:2,-1:8,83:4,30,83:4,-1:2,83:2,-1:2,83," +
"-1,83:8,-1:2,83:2,-1:8,83:9,-1:2,44,83,-1:2,83,-1,83:8,-1:2,83:2,-1:8,83:5," +
"62,83:3,-1:2,83:2,-1:2,83,-1,83:8,-1:2,83:2,-1:8,83:9,-1:2,83:2,-1:2,83,-1," +
"83:2,69,83:5,-1:2,83:2,-1:8,83:4,68,83:4,-1:2,83:2,-1:2,83,-1,83:8,-1:2,83:" +
"2,-1:8,83:9,-1:2,66,83,-1:2,83,-1,83:8,-1:2,83:2,-1:8,83,73,83:7,-1:2,83:2," +
"-1:2,83,-1,83:8,-1:2,83:2,-1:8,83:3,46,83:5,-1:2,83:2,-1:2,83,-1,83:8,-1:2," +
"83:2,-1:8,83:4,48,83:4,-1:2,83:2,-1:2,83,-1,83:8,-1:2,83:2,-1:8,83:6,51,83:" +
"2,-1:2,83:2,-1:2,83,-1,83:8,-1:2,83:2,-1:8,83:3,53,83:5,-1:2,83:2,-1:2,83,-" +
"1,83:8,-1:2,83:2,-1:8,83:9,-1:2,83:2,-1:2,54,-1,83:8,-1:2,83:2,-1:8,83:9,-1" +
":2,83,76,-1:2,83,-1,83:8,-1:2,83:2,-1:8,83:9,-1:2,83,55,-1:2,83,-1,83:8,-1:" +
"2,83:2,-1:8,56,83:8,-1:2,83:2,-1:2,83,-1,83:8,-1:2,83:2,-1:8,83:4,57,83:4,-" +
"1:2,83:2,-1:2,83,-1,83:8,-1:2,83:2,-1:8,83:9,-1:2,79,83,-1:2,83,-1,83:8,-1:" +
"2,83:2,-1:7");

	public boolean advance ()
		throws java.io.IOException {
		int yy_lookahead;
		int yy_anchor = YY_NO_ANCHOR;
		int yy_state = yy_state_dtrans[yy_lexical_state];
		int yy_next_state = YY_NO_STATE;
		int yy_last_accept_state = YY_NO_STATE;
		boolean yy_initial = true;
		int yy_this_accept;

		yy_mark_start();
		yy_this_accept = yy_acpt[yy_state];
		if (YY_NOT_ACCEPT != yy_this_accept) {
			yy_last_accept_state = yy_state;
			yy_mark_end();
		}
		while (true) {
			if (yy_initial && yy_at_bol) yy_lookahead = YY_BOL;
			else yy_lookahead = yy_advance();
			yy_next_state = YY_F;
			yy_next_state = yy_nxt[yy_rmap[yy_state]][yy_cmap[yy_lookahead]];
			if (YY_EOF == yy_lookahead && true == yy_initial) {

  return false;
			}
			if (YY_F != yy_next_state) {
				yy_state = yy_next_state;
				yy_initial = false;
				yy_this_accept = yy_acpt[yy_state];
				if (YY_NOT_ACCEPT != yy_this_accept) {
					yy_last_accept_state = yy_state;
					yy_mark_end();
				}
			}
			else {
				if (YY_NO_STATE == yy_last_accept_state) {
					throw (new Error("Lexical Error: Unmatched Input."));
				}
				else {
					yy_anchor = yy_acpt[yy_last_accept_state];
					if (0 != (YY_END & yy_anchor)) {
						yy_move_end();
					}
					yy_to_mark();
					switch (yy_last_accept_state) {
					case 1:
						
					case -2:
						break;
					case 2:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -3:
						break;
					case 3:
						{
  token = yytext().charAt(0); value = null; return true;
}
					case -4:
						break;
					case 4:
						{
  token = number; value = new String(yytext()); return true;
}
					case -5:
						break;
					case 5:
						{
  token = eol; value = new String(yytext()); return true;
}
					case -6:
						break;
					case 6:
						{
}
					case -7:
						break;
					case 7:
						{
  token = _262; value = null; return true;
}
					case -8:
						break;
					case 8:
						{
  token = _263; value = null; return true;
}
					case -9:
						break;
					case 9:
						{
  token = _275; value = null; return true;
}
					case -10:
						break;
					case 10:
						{
  token = _274; value = null; return true;
}
					case -11:
						break;
					case 11:
						{
  token = _269; value = null; return true;
}
					case -12:
						break;
					case 12:
						{
  token = _271; value = null; return true;
}
					case -13:
						break;
					case 13:
						{
  token = _273; value = null; return true;
}
					case -14:
						break;
					case 14:
						{
  token = _272; value = null; return true;
}
					case -15:
						break;
					case 15:
						{
  token = str; value = new String(yytext()); return true;
}
					case -16:
						break;
					case 16:
						{
}
					case -17:
						break;
					case 17:
						{
  token = _268; value = null; return true;
}
					case -18:
						break;
					case 18:
						{
  token = _270; value = null; return true;
}
					case -19:
						break;
					case 19:
						{
  token = _259; value = null; return true;
}
					case -20:
						break;
					case 20:
						{
  token = type; value = new String(yytext()); return true;
}
					case -21:
						break;
					case 21:
						{
  token = _261; value = null; return true;
}
					case -22:
						break;
					case 22:
						{
  token = _264; value = null; return true;
}
					case -23:
						break;
					case 23:
						{
  token = _265; value = null; return true;
}
					case -24:
						break;
					case 24:
						{
  token = _258; value = null; return true;
}
					case -25:
						break;
					case 25:
						{
  token = bool; value = new String(yytext()); return true;
}
					case -26:
						break;
					case 26:
						{
  token = _267; value = null; return true;
}
					case -27:
						break;
					case 27:
						{
  token = _266; value = null; return true;
}
					case -28:
						break;
					case 28:
						{
  token = _257; value = null; return true;
}
					case -29:
						break;
					case 29:
						{
  token = _260; value = null; return true;
}
					case -30:
						break;
					case 30:
						{
  token = global; value = new String(yytext()); return true;
}
					case -31:
						break;
					case 32:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -32:
						break;
					case 33:
						{
  token = yytext().charAt(0); value = null; return true;
}
					case -33:
						break;
					case 34:
						{
}
					case -34:
						break;
					case 35:
						{
  token = type; value = new String(yytext()); return true;
}
					case -35:
						break;
					case 37:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -36:
						break;
					case 38:
						{
  token = yytext().charAt(0); value = null; return true;
}
					case -37:
						break;
					case 40:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -38:
						break;
					case 41:
						{
  token = yytext().charAt(0); value = null; return true;
}
					case -39:
						break;
					case 42:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -40:
						break;
					case 43:
						{
  token = yytext().charAt(0); value = null; return true;
}
					case -41:
						break;
					case 44:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -42:
						break;
					case 45:
						{
  token = yytext().charAt(0); value = null; return true;
}
					case -43:
						break;
					case 46:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -44:
						break;
					case 47:
						{
  token = yytext().charAt(0); value = null; return true;
}
					case -45:
						break;
					case 48:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -46:
						break;
					case 49:
						{
  token = yytext().charAt(0); value = null; return true;
}
					case -47:
						break;
					case 50:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -48:
						break;
					case 51:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -49:
						break;
					case 52:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -50:
						break;
					case 53:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -51:
						break;
					case 54:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -52:
						break;
					case 55:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -53:
						break;
					case 56:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -54:
						break;
					case 57:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -55:
						break;
					case 58:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -56:
						break;
					case 59:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -57:
						break;
					case 60:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -58:
						break;
					case 61:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -59:
						break;
					case 62:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -60:
						break;
					case 63:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -61:
						break;
					case 64:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -62:
						break;
					case 65:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -63:
						break;
					case 66:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -64:
						break;
					case 67:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -65:
						break;
					case 68:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -66:
						break;
					case 69:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -67:
						break;
					case 70:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -68:
						break;
					case 71:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -69:
						break;
					case 72:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -70:
						break;
					case 73:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -71:
						break;
					case 74:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -72:
						break;
					case 75:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -73:
						break;
					case 76:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -74:
						break;
					case 77:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -75:
						break;
					case 78:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -76:
						break;
					case 79:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -77:
						break;
					case 80:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -78:
						break;
					case 81:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -79:
						break;
					case 82:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -80:
						break;
					case 83:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -81:
						break;
					case 84:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -82:
						break;
					case 85:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -83:
						break;
					case 86:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -84:
						break;
					case 87:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -85:
						break;
					case 88:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -86:
						break;
					case 89:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -87:
						break;
					case 90:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -88:
						break;
					case 91:
						{
  token = ident; value = new String(yytext()); return true;
}
					case -89:
						break;
					default:
						yy_error(YY_E_INTERNAL,false);
					case -1:
					}
					yy_initial = true;
					yy_state = yy_state_dtrans[yy_lexical_state];
					yy_next_state = YY_NO_STATE;
					yy_last_accept_state = YY_NO_STATE;
					yy_mark_start();
					yy_this_accept = yy_acpt[yy_state];
					if (YY_NOT_ACCEPT != yy_this_accept) {
						yy_last_accept_state = yy_state;
						yy_mark_end();
					}
				}
			}
		}
	}
}
// created by pj2.Gen 2.0.1/2.0.0 (c) 2008 axel.schreiner@rit.edu
  /** tree factory */
  public static class yyTree implements java.io.Serializable {
    /** what each tree class will do. */
    public interface Visit {
      /** receive a visitor. */
      java.lang.Object visit (Visitor visitor);
      public void setType( int type ); public int getType();
    }
    /** what a visitor must do:
        receive each tree class separately.
      */
    public interface Visitor {
      java.lang.Object visit (Prgm node);
      java.lang.Object visit (top_stmt node);
      java.lang.Object visit (Stmt node);
      java.lang.Object visit (IfStmt node);
      java.lang.Object visit (IfBlock node);
      java.lang.Object visit (ElifBlock node);
      java.lang.Object visit (ElseBlock node);
      java.lang.Object visit (WhileStmt node);
      java.lang.Object visit (GlbDecl node);
      java.lang.Object visit (Assign node);
      java.lang.Object visit (FuncDecl node);
      java.lang.Object visit (Params node);
      java.lang.Object visit (DefPar node);
      java.lang.Object visit (RetCls node);
      java.lang.Object visit (Print node);
      java.lang.Object visit (Read node);
      java.lang.Object visit (Lt node);
      java.lang.Object visit (Lte node);
      java.lang.Object visit (Gt node);
      java.lang.Object visit (Gte node);
      java.lang.Object visit (Eq node);
      java.lang.Object visit (Neq node);
      java.lang.Object visit (LgAnd node);
      java.lang.Object visit (LgOr node);
      java.lang.Object visit (LgNot node);
      java.lang.Object visit (Expr node);
      java.lang.Object visit (Add node);
      java.lang.Object visit (Sub node);
      java.lang.Object visit (Mul node);
      java.lang.Object visit (Div node);
      java.lang.Object visit (Mod node);
      java.lang.Object visit (Exp node);
      java.lang.Object visit (BwAnd node);
      java.lang.Object visit (BwOr node);
      java.lang.Object visit (BwXor node);
      java.lang.Object visit (BwNot node);
      java.lang.Object visit (Call node);
      java.lang.Object visit (ArrayLit node);
      java.lang.Object visit (Parens node);
      java.lang.Object visit (Cast node);
      java.lang.Object visit (UNeg node);
      java.lang.Object visit (UPos node);
      java.lang.Object visit (BoolCls node);
      java.lang.Object visit (StrCls node);
      java.lang.Object visit (NumCls node);
      java.lang.Object visit (TypeCls node);
      java.lang.Object visit (IdCls node);
      java.lang.Object visit (EolCls node);
      java.lang.Object visit (SubStr node);
      java.lang.Object visit (Range node);
      /** hook for unknown classes. */
      java.lang.Object visit (Visit node);
    }
    /** factory method. */
    public Prgm prgm (int position, java.util.List args) {
      return new Prgm(position, args);
    }
    /** tree node class. */
    public static class Prgm extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected Prgm (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public top_stmt top_stmt (int position, java.util.List args) {
      return new top_stmt(position, args);
    }
    /** tree node class. */
    public static class top_stmt extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected top_stmt (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public Stmt stmt (int position, java.util.List args) {
      return new Stmt(position, args);
    }
    /** tree node class. */
    public static class Stmt extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected Stmt (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public IfStmt ifstmt (int position, java.util.List args) {
      return new IfStmt(position, args);
    }
    /** tree node class. */
    public static class IfStmt extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected IfStmt (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public IfBlock ifblock (int position, java.util.List args) {
      return new IfBlock(position, args);
    }
    /** tree node class. */
    public static class IfBlock extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected IfBlock (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public ElifBlock elifblock (int position, java.util.List args) {
      return new ElifBlock(position, args);
    }
    /** tree node class. */
    public static class ElifBlock extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected ElifBlock (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public ElseBlock elseblock (int position, java.util.List args) {
      return new ElseBlock(position, args);
    }
    /** tree node class. */
    public static class ElseBlock extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected ElseBlock (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public WhileStmt whilestmt (int position, java.util.List args) {
      return new WhileStmt(position, args);
    }
    /** tree node class. */
    public static class WhileStmt extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected WhileStmt (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public GlbDecl glbdecl (int position, java.util.List args) {
      return new GlbDecl(position, args);
    }
    /** tree node class. */
    public static class GlbDecl extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected GlbDecl (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public Assign assign (int position, java.util.List args) {
      return new Assign(position, args);
    }
    /** tree node class. */
    public static class Assign extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected Assign (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public FuncDecl funcdecl (int position, java.util.List args) {
      return new FuncDecl(position, args);
    }
    /** tree node class. */
    public static class FuncDecl extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected FuncDecl (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public Params params (int position, java.util.List args) {
      return new Params(position, args);
    }
    /** tree node class. */
    public static class Params extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected Params (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public DefPar defpar (int position, java.util.List args) {
      return new DefPar(position, args);
    }
    /** tree node class. */
    public static class DefPar extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected DefPar (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public RetCls retcls (int position, java.util.List args) {
      return new RetCls(position, args);
    }
    /** tree node class. */
    public static class RetCls extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected RetCls (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public Print print (int position, java.util.List args) {
      return new Print(position, args);
    }
    /** tree node class. */
    public static class Print extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected Print (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public Read read (int position, java.util.List args) {
      return new Read(position, args);
    }
    /** tree node class. */
    public static class Read extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected Read (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public Lt lt (int position, java.util.List args) {
      return new Lt(position, args);
    }
    /** tree node class. */
    public static class Lt extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected Lt (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public Lte lte (int position, java.util.List args) {
      return new Lte(position, args);
    }
    /** tree node class. */
    public static class Lte extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected Lte (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public Gt gt (int position, java.util.List args) {
      return new Gt(position, args);
    }
    /** tree node class. */
    public static class Gt extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected Gt (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public Gte gte (int position, java.util.List args) {
      return new Gte(position, args);
    }
    /** tree node class. */
    public static class Gte extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected Gte (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public Eq eq (int position, java.util.List args) {
      return new Eq(position, args);
    }
    /** tree node class. */
    public static class Eq extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected Eq (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public Neq neq (int position, java.util.List args) {
      return new Neq(position, args);
    }
    /** tree node class. */
    public static class Neq extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected Neq (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public LgAnd lgand (int position, java.util.List args) {
      return new LgAnd(position, args);
    }
    /** tree node class. */
    public static class LgAnd extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected LgAnd (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public LgOr lgor (int position, java.util.List args) {
      return new LgOr(position, args);
    }
    /** tree node class. */
    public static class LgOr extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected LgOr (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public LgNot lgnot (int position, java.util.List args) {
      return new LgNot(position, args);
    }
    /** tree node class. */
    public static class LgNot extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected LgNot (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public Expr expr (int position, java.util.List args) {
      return new Expr(position, args);
    }
    /** tree node class. */
    public static class Expr extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected Expr (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public Add add (int position, java.util.List args) {
      return new Add(position, args);
    }
    /** tree node class. */
    public static class Add extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected Add (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public Sub sub (int position, java.util.List args) {
      return new Sub(position, args);
    }
    /** tree node class. */
    public static class Sub extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected Sub (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public Mul mul (int position, java.util.List args) {
      return new Mul(position, args);
    }
    /** tree node class. */
    public static class Mul extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected Mul (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public Div div (int position, java.util.List args) {
      return new Div(position, args);
    }
    /** tree node class. */
    public static class Div extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected Div (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public Mod mod (int position, java.util.List args) {
      return new Mod(position, args);
    }
    /** tree node class. */
    public static class Mod extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected Mod (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public Exp exp (int position, java.util.List args) {
      return new Exp(position, args);
    }
    /** tree node class. */
    public static class Exp extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected Exp (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public BwAnd bwand (int position, java.util.List args) {
      return new BwAnd(position, args);
    }
    /** tree node class. */
    public static class BwAnd extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected BwAnd (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public BwOr bwor (int position, java.util.List args) {
      return new BwOr(position, args);
    }
    /** tree node class. */
    public static class BwOr extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected BwOr (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public BwXor bwxor (int position, java.util.List args) {
      return new BwXor(position, args);
    }
    /** tree node class. */
    public static class BwXor extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected BwXor (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public BwNot bwnot (int position, java.util.List args) {
      return new BwNot(position, args);
    }
    /** tree node class. */
    public static class BwNot extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected BwNot (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public Call call (int position, java.util.List args) {
      return new Call(position, args);
    }
    /** tree node class. */
    public static class Call extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected Call (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public ArrayLit arraylit (int position, java.util.List args) {
      return new ArrayLit(position, args);
    }
    /** tree node class. */
    public static class ArrayLit extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected ArrayLit (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public Parens parens (int position, java.util.List args) {
      return new Parens(position, args);
    }
    /** tree node class. */
    public static class Parens extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected Parens (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public Cast cast (int position, java.util.List args) {
      return new Cast(position, args);
    }
    /** tree node class. */
    public static class Cast extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected Cast (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public UNeg uneg (int position, java.util.List args) {
      return new UNeg(position, args);
    }
    /** tree node class. */
    public static class UNeg extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected UNeg (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public UPos upos (int position, java.util.List args) {
      return new UPos(position, args);
    }
    /** tree node class. */
    public static class UPos extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected UPos (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public BoolCls boolcls (int position, java.util.List args) {
      return new BoolCls(position, args);
    }
    /** tree node class. */
    public static class BoolCls extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected BoolCls (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public StrCls strcls (int position, java.util.List args) {
      return new StrCls(position, args);
    }
    /** tree node class. */
    public static class StrCls extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected StrCls (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public NumCls numcls (int position, java.util.List args) {
      return new NumCls(position, args);
    }
    /** tree node class. */
    public static class NumCls extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected NumCls (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public TypeCls typecls (int position, java.util.List args) {
      return new TypeCls(position, args);
    }
    /** tree node class. */
    public static class TypeCls extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected TypeCls (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public IdCls idcls (int position, java.util.List args) {
      return new IdCls(position, args);
    }
    /** tree node class. */
    public static class IdCls extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected IdCls (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public EolCls eolcls (int position, java.util.List args) {
      return new EolCls(position, args);
    }
    /** tree node class. */
    public static class EolCls extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected EolCls (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public SubStr index (int position, java.util.List args) {
      return new SubStr(position, args);
    }
    /** tree node class. */
    public static class SubStr extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected SubStr (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
    /** factory method. */
    public Range range (int position, java.util.List args) {
      return new Range(position, args);
    }
    /** tree node class. */
    public static class Range extends java.util.AbstractList
        implements java.io.Serializable, Visit {
      /* call class-specific method of visitor. */
      public java.lang.Object visit (Visitor visitor) {
        return visitor.visit(this);
      }
      /** associated input position. */
      public final int position;
      /** immutable body. */
      protected final java.lang.Object[] nodes;
      private int type; public void setType( int type ) { this.type = type; } public int getType() { return type; }

      protected Range (int position, java.util.List args) {
         this.position = position;
         nodes = args.toArray();
      }

      public int size () { return nodes.length; }

      public java.lang.Object get (int n) { return nodes[n]; }
    }
  }
}
      					// line 3985 "-"

